package com.cly.controller;

import com.cly.domain.ProdTag;
import com.cly.service.ProdTagService;
import com.cly.vo.ProdTagVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("prod/prodTag")
@Api(tags = "商品标签分组管理")
public class ProdTagController {

    @Autowired
    private ProdTagService prodTagService;

    /**
     * 分页查询商品标签分组
     *
     * @return
     */
    @GetMapping("page")
    @ApiOperation("分页查询商品标签分组")
    @PreAuthorize("hasAuthority('prod:prodTag:page')")
    public ResponseEntity<Page<ProdTag>> findProdTagPage(Page<ProdTag> page, ProdTag prodTag) {
        Page<ProdTag> prodTagPage = prodTagService.findProdTagPage(page, prodTag);
        return ResponseEntity.ok(prodTagPage);
    }

    /**
     * 新增标签分组
     * @param prodTag
     * @return
     */
    @PostMapping
    @ApiOperation("新增标签分组")
    @PreAuthorize("hasAuthority('prod:prodTag:save')")
    public ResponseEntity<Void> addProdTag(@RequestBody ProdTag prodTag){
        prodTagService.save(prodTag);
        return ResponseEntity.ok().build();
    }

    /**
     * 全查需标签分组
     * @return
     */
    @GetMapping("listTagList")
    @ApiOperation("全查需标签分组")
    @PreAuthorize("hasAuthority('prod:prodTag:page')")
    public ResponseEntity<List<ProdTag>> listTagList() {
        List<ProdTag> list = prodTagService.list();
        return ResponseEntity.ok(list);
    }

    // ------------------------------- 前台接口
    @GetMapping("prodTagList")
    @ApiOperation("查询前台签分组")
    public ResponseEntity<List<ProdTagVo>> loadFrontTag(){
        List<ProdTagVo> prodTagVos = prodTagService.loadFrontTag();
        return ResponseEntity.ok(prodTagVos);
    }
}
